/**********************************************
* @file    	key.c
* @author 	dralee
* @version	v1.0
* @date			2021-11-30
* @brief		按键应用接口
***********************************************/
#include "key.h"

/**
 *****************************************
 * @brief 配置按键IO口
 * @param 无
 * @retval 无
 *****************************************/
void Key_GPIO_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	
	// 开启按键端口时钟
	RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK | KEY2_GPIO_CLK, ENABLE);
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;	// 浮空输入
	GPIO_InitStruct.GPIO_Pin = KEY1_GPIO_PIN;
	GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStruct);				// 初始化
	
	GPIO_InitStruct.GPIO_Pin = KEY2_GPIO_PIN;
	GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStruct);				// 初始化
	
}

/**
 *****************************************
 * @brief 检测是否有按键按下
 * @param GPIOx:x可以是A...G
 * @param GPIO_Pin：待读取的端口位
 * @retval KEY_OFF（没按下）、KEY_ON（按下按键）
 *****************************************/
uint8_t Key_Scan(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
{
	if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON)
	{
		while(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON); // 等待释放
		return KEY_ON;
	}
	return KEY_OFF;
}
